xenctx: Add -n (--display-stack-pages) option to output larger stack
Important: This is the stack size (also known as stack limit) to
display, not the configured stack size.
Note: use with caution (easy to get garbage).
Below is a pictures of a downwards growing configured 3 page stack,
and where the SP currently is. Each box is a page.
+ pages -n 1 -n 2 -n 3
End of Memory
+------------------+
| |
| |
| |
| |
| |
+------------------+
...
+------------------+
| |
| |
| |
| |
MAX+3 | |
+------------------+ *
| | |
| | |
| | |
| | |
MAX+2 | | |
+------------------+ * |
| | | |
| | | |
| | | |
| | | |
MAX+1 | | | |
+------------------+ * | |
| | | | |
SP --> | | * * *
| |
| |
MAX | |
+------------------+
...
+------------------+
| |
| |
| |
| |
0 | |
+------------------+
Display using "-n 3" since the used stack pages is 3.
At a different time, the SP may be in the 1st page and so "-n 3"
will display garbage.
For example:
$ xenctx -s /boot/System.map-2.6.32-279.2.1.el6.x86_64 3 1 -n 1
...
Call Trace:
[<
ffffffff81346898>] io_serial_out+0x18 <--
ffff880032bb1310: [<
ffffffff81346f51>] serial8250_console_putchar+0x31
ffff880032bb1330: [<
ffffffff813428de>] uart_console_write+0x3e
ffff880032bb1338: [<
ffffffff8100bc0e>] apic_timer_interrupt+0xe
ffff880032bb1370: [<
ffffffff813472ad>] serial8250_console_write+0xbd
ffff880032bb13c0: [<
ffffffff8106b8f5>] __call_console_drivers+0x75
ffff880032bb13f0: [<
ffffffff8106b95a>] _call_console_drivers+0x4a
ffff880032bb1410: [<
ffffffff8106be6e>] release_console_sem+0x4e
ffff880032bb1450: [<
ffffffff8106c628>] vprintk+0x248
ffff880032bb14f0: [<
ffffffff814fd363>] printk+0x41
$ xenctx -s /boot/System.map-2.6.32-279.2.1.el6.x86_64 3 1 -n 2
...
Call Trace:
[<
ffffffff81346898>] io_serial_out+0x18 <--
ffff880032bb1310: [<
ffffffff81346f51>] serial8250_console_putchar+0x31
ffff880032bb1330: [<
ffffffff813428de>] uart_console_write+0x3e
ffff880032bb1338: [<
ffffffff8100bc0e>] apic_timer_interrupt+0xe
ffff880032bb1370: [<
ffffffff813472ad>] serial8250_console_write+0xbd
ffff880032bb13c0: [<
ffffffff8106b8f5>] __call_console_drivers+0x75
ffff880032bb13f0: [<
ffffffff8106b95a>] _call_console_drivers+0x4a
ffff880032bb1410: [<
ffffffff8106be6e>] release_console_sem+0x4e
ffff880032bb1450: [<
ffffffff8106c628>] vprintk+0x248
ffff880032bb14f0: [<
ffffffff814fd363>] printk+0x41
$ xenctx -s /boot/System.map-2.6.32-279.2.1.el6.x86_64 3 1 -n 3
...
Call Trace:
[<
ffffffff81346898>] io_serial_out+0x18 <--
ffff880032bb1310: [<
ffffffff81346f51>] serial8250_console_putchar+0x31
ffff880032bb1330: [<
ffffffff813428de>] uart_console_write+0x3e
ffff880032bb1338: [<
ffffffff8100bc0e>] apic_timer_interrupt+0xe
ffff880032bb1370: [<
ffffffff813472ad>] serial8250_console_write+0xbd
ffff880032bb13c0: [<
ffffffff8106b8f5>] __call_console_drivers+0x75
ffff880032bb13f0: [<
ffffffff8106b95a>] _call_console_drivers+0x4a
ffff880032bb1410: [<
ffffffff8106be6e>] release_console_sem+0x4e
ffff880032bb1450: [<
ffffffff8106c628>] vprintk+0x248
ffff880032bb14f0: [<
ffffffff814fd363>] printk+0x41
ffff880032bb3f20: [<
ffffffff8100204c>] do_one_initcall+0x3c
ffff880032bb3f50: [<
ffffffff810b0eb1>] sys_init_module+0xe1
ffff880032bb3f80: [<
ffffffff8100b0f2>] system_call_fastpath+0x16
Signed-off-by: Don Slutz <Don@CloudSwitch.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>